package com.ndp.fb.fbagent.service;

import java.util.List;
import java.util.Map;

import com.ndp.fb.model.fbagent.param.IdParam;
import com.ndp.fb.model.fbagent.param.connectionobjects.FBConnectionObjectsParam;
import com.ndp.fb.model.fbagent.result.businesses.FBBusinesses;
import com.ndp.fb.model.fbagent.result.businesses.FBMe;
import com.ndp.fb.model.fbagent.result.businesses.UserpermissionsResult;
import com.ndp.fb.model.fbagent.result.connectionobjects.FBConnectionObjects;
import com.ndp.fb.model.fbagent.result.entrustaccount.EntrustAccounts;
import com.ndp.fb.model.fbagent.result.entrustaccount.TokenResult;

/**
 * Created by infi on 2015/3/24.
 */
public interface OauthFbService {


     List<UserpermissionsResult> getUserpermissionsResult(String accessToken, Long fbBusinessesId, int offset, int limit, boolean isAll);


     List<EntrustAccounts> getEntrustAccountsByFbUser(String accessToken, int offset, int limit, boolean isAll);

     String getAccessToken(String appId,String appSecret, String code, String redirectUri, String locale);

     void getFBConnectionObjects(FBConnectionObjectsParam requestParam,Map<String, String> equipmentMap);

     List<FBConnectionObjects> getFBConnectionObjects(Long fbAccountId, String accessToken);
     
    List<FBBusinesses> getFbBusinessesList(String accessToken);

    FBMe getFbMe(String accessToken);


    /**
     * 检查 accessToken 是否失效
     *
     * @param accessToken app 应用的token,与系统中其他使用的不同
     * @param inputToken  需要检查的 token,即每次请求发送需要使用的token
     * @return
     */
    TokenResult checkToken(String accessToken, String inputToken);

    void deleteObject(IdParam param);

}
